﻿using System;
using System.Resources;
using System.Globalization;
using System.Collections;
using System.Configuration;
using System.Data;

using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

using Portal.Environment;
using Portal.Language;

using System.Text;
using System.Text.RegularExpressions;

public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Regex rewrite_regex = new Regex(@"(.+)\/((.+)\.aspx)", RegexOptions.IgnoreCase);

        if (Portal.Environment.Environments.CurrentLoginUser != null)
        {
            try
            {
                Portal.Environment.ChatServiceBll.LogOffUser(Portal.Environment.Environments.CurrentLoginUser.UserId);
            }
            catch (Exception ex)
            {
                ex.Source = "";
            }
        }
        Portal.Environment.Environments.CurrentLoginUser = null;

        Portal.Environment.Environments.SetEnvironment();
        AjaxPro.Utility.RegisterTypeForAjax(typeof(Login), this.Page);
        System.Web.HttpContext.Current.Session["ActiveRoleId"] = null;

        string HtmlAddText =
                "<div class=cssFormLogin>" +
                "<div class=\"box_380\">" +
                "   <div class=\"box_title_380\">" + ResourceBLL.GetText("Home", "FormTitle", "Đăng nhập vào hệ thống") + "</div>" +
                "   <div class=\"box_body_380\">" +
                "        <table>" +
                "            <tr>" +
                "                <td class=cssLoginTd1>" + ResourceBLL.GetText("Home", "LoginName", "Mã truy cập") + "</td>" +
                "                <td class=cssLoginTd2><input id=txtLoginName class=cssLoginName "+Environments.GetToolTips("Login","Login","Nhập mã truy cập để đăng nhập vào hệ thống")+" value=\"admin\"></td>" +
                "            </tr>" +
                "            <tr>" +
                "                <td class=cssLoginTd1>" + ResourceBLL.GetText("Home", "Password", "Mật khẩu") + "</td>" +
                "                <td><input type=password id=txtPassword class=cssPassword " + Environments.GetToolTips("Password", "Password", "Nhập mật khẩu! Trong trường hợp bạn mới được cấp liên lạc quản trị hệ thống để được cấp!") + " value=\"1\"></td>" +
                "            </tr>" +
                "            <tr>" +
                "                <td class=cssLoginTd1></td>" +
                "                <td><input type=button class=cssAcceptLogin onclick=\"javascript:ClientDoLogin();\" value=\"" + ResourceBLL.GetText("Home", "Accept", "Đăng nhập") + "\"><input type=button class=cssCancelLogin value=\"" + ResourceBLL.GetText("Home", "ForgotPassword", "Quên mật khẩu") + "\"></td>" +
                "            </tr>" +
                "        </table>" +
                "    </div>" +
                "<div class=\"box_bottom_380\"></div>" +
                "<div>" +
                "</div>";
        placeHolderContent.Controls.Clear();
        placeHolderContent.Controls.Add(new System.Web.UI.LiteralControl(HtmlAddText));
        Session["ActiveTheme"] = Environments.GetAppSettings("ActiveTheme");
    }

    [AjaxPro.AjaxMethod]
    public string ServerSideLogin(string LoginName, string Password)
    {
        try
        {
            if (LoginName.Trim().Length == 0) throw new Exception(ResourceBLL.GetText("Home", "InvalidUserName", "Chưa nhập tài khoản truy cập!"));
            Portal.Environment.Environments.CurrentLoginUser = Portal.Environment.Permission.Login(LoginName, Password);
            if (Portal.Environment.Environments.CurrentLoginUser == null)
            {
                throw new Exception(ResourceBLL.GetText("Home","AccessDenied","Truy cập bị cấm!"));
            }

            if (Portal.Environment.Environments.GetActiveChat()==1)
            {
                Portal.Environment.ChatServiceBll.AddLoggedInUser(Portal.Environment.Environments.CurrentLoginUser.UserId, 1);
            }
            return "OK";
        }
        catch (Exception ex)
        {
            return "ERROR: " + ex.Message.ToString();
        }
    }


    [AjaxPro.AjaxMethod]
    public string GetUserBackendAspx()
    {
        try
        {
            Portal.Environment.Environments.CurrentLoginUser = Portal.Environment.Environments.CurrentLoginUser;
            if (Portal.Environment.Environments.CurrentLoginUser == null)
            {
                return "default.aspx";
            }
            else
            {
                string Temp = Portal.Environment.Environments.CurrentLoginUser.UserBackendAspx;
                if (Temp.Trim().Length == 0) Temp = "default";
                return Temp + ".aspx";
            }
        }
        catch (Exception ex)
        {
            return "ERROR: " + ex.Message.ToString();
        }
    }
}